package day07

import org.apache.spark.sql.{DataFrame, SparkSession}

object otherFuncDemo {

  def main(args: Array[String]): Unit = {
    /**
      * 日期方法: current_date  ,  current_timestamp
      * 数学方法: round ---保留几位小数
      * 随机方法: rand
      * 字符串方法: concat  , concat_ws
      */
    val spark: SparkSession = SparkSession.builder().appName("otherFuncDemo").master("local[2]").getOrCreate()
    import spark.implicits._
    import org.apache.spark.sql.functions._
    //就用DF类型演示。当然也可以转换成DS类型
    val employee: DataFrame = spark.read.json("E://data/employee.json")
    employee.select(
      employee("name"),
      current_date(),
      current_timestamp(),
      round(employee("salary"), 2), //这个是保留小数点后2位，会四舍五入
      rand(), //不给参数的话就是0~1之间给一个数
      concat(employee("name"),employee("age")),
      // concat_ws第一个参数拼接的过程中中间叫加什么分隔符。最后一个拼接的数据也有分隔符eg:Jack|35|
      concat_ws("|",employee("name"),employee("age"))
    ).show()

    spark.stop()



  }

}
